--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
patches/ol@10.9.0.patch v4.7.0-rc.2 (a20c7e1c) Text, 2.05 KB
Tc9d1d9diff --git a/render/canvas/ExecutorGroup.js b/render/canvas/ExecutorGroup.js
Tc9d1d9index e791ac73b7ca585c3892b5f02841e86aa83f47ce..75eb7d56e49d46bbfdf17ac303cc0557c53bb527 100644
Tf85149--- a/render/canvas/ExecutorGroup.js
T7ee787+++ b/render/canvas/ExecutorGroup.js
Tc9d1d9@@ -48,30 +48,7 @@ let canvasReadsBenchmarked = false;
/** Determine if canvas read operations are faster with willReadFrequently set to true or false */
function benchmarkCanvasReads() {
Tf85149- let bestResult = 0;
Tf85149- /**
Tf85149- * @param {boolean} willReadFrequently Will read frequently.
Tf85149- * @return {number} Operation count.
Tf85149- */
Tf85149- const measure = (willReadFrequently) => {
Tf85149- const context = createCanvasContext2D(1, 1, null, {willReadFrequently});
Tf85149- let count = 0;
Tf85149- const start = performance.now();
Tf85149- for (; performance.now() - start < 50; ++count) {
Tf85149- context.fillStyle = `rgba(255,0,${count % 256},1)`;
Tf85149- context.fillRect(0, 0, 1, 1);
Tf85149- context.getImageData(0, 0, 1, 1);
Tf85149- }
Tf85149- bestResult = count > bestResult ? count : bestResult;
Tf85149- return count;
Tf85149- };
Tf85149-
Tf85149- const measures = {
Tf85149- [measure(true)]: true,
Tf85149- [measure(false)]: false,
Tf85149- [measure(undefined)]: undefined,
Tf85149- };
Tf85149- willReadFrequently = measures[bestResult];
T7ee787+ willReadFrequently = true;
canvasReadsBenchmarked = true;
}
Tc9d1d9diff --git a/render/canvas/hitdetect.js b/render/canvas/hitdetect.js
Tc9d1d9index 7f161bd7e94abb1293a5e61d5d11c87996ec9949..465c18663ccf257e494de0473ab6848e67d6f8f2 100644
Tf85149--- a/render/canvas/hitdetect.js
T7ee787+++ b/render/canvas/hitdetect.js
Tc9d1d9@@ -46,7 +46,9 @@ export function createHitDetectionImageData(
const userExtent = projection ? toUserExtent(extent, projection) : extent;
const width = size[0] * HIT_DETECT_RESOLUTION;
const height = size[1] * HIT_DETECT_RESOLUTION;
Tf85149- const context = createCanvasContext2D(width, height);
T7ee787+ const context = createCanvasContext2D(width, height, undefined, {
T7ee787+ willReadFrequently: true,
T7ee787+ });
context.imageSmoothingEnabled = false;
const canvas = context.canvas;
const renderer = new CanvasImmediateRenderer(
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────